/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.view.backingbean;

import br.com.model.core.ProdutoDao;
import br.com.model.entity.Produto;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
//import org.primefaces.model.StreamedContent;

/**
 *
 * @author Aluno
 */
@SessionScoped
@ManagedBean(name = "backingProduto")
public class BackingProduto{

    private Produto p1;
    private List<Produto> produtos;
    private ProdutoDao pD1;
    private DataModel listaProdutos;
    private String descricao;
    //private StreamedContent image;

    public BackingProduto() {
        pD1 = new ProdutoDao();
        p1 = new Produto();
    }

    public DataModel getListaProdutos() {
        this.produtos = pD1.list(Produto.class);
        this.listaProdutos = new ListDataModel(this.produtos);
        return listaProdutos;
    }

    public DataModel getListaProdutosParametrizada() {
        return listaProdutos;
    }
    
    public String prepararListaParametrizada(){
        this.produtos = pD1.listarProduto(this.descricao);
        this.listaProdutos = new ListDataModel(this.produtos);
        return Outcomes.EXIBIR_PRODUTOS;
    
    }

    public String prepararAdicionarProduto() {
        this.p1 = new Produto();
        return Outcomes.MANTER_PRODUTO;
    }

    public String prepararAlterarProduto() {
        this.p1 = (Produto) (listaProdutos.getRowData());
        return Outcomes.MANTER_PRODUTO;
    }
    public String prepararCompra() {
        this.p1 = (Produto) (listaProdutos.getRowData());
        return Outcomes.DETALHES_PROD;
    }

    public String excluirProduto() {
        Produto p2 = (Produto) (listaProdutos.getRowData());
        pD1.delete(p2);
        return Outcomes.MAIN;
    }

    public String adicionarProduto() {
        p1.setStatusProduto(Boolean.TRUE);
        pD1.save(p1);
        return Outcomes.MAIN;
    }

    public String alterarProduto() {
        pD1.update(p1);
        return Outcomes.MAIN;
    }
    
    public String voltarAdmin(){
    return Outcomes.MANTER_PRODUTO;
    }
    

    public void setListaProdutos(DataModel listaProdutos) {
        this.listaProdutos = listaProdutos;
    }

    public Produto getP1() {
        return p1;
    }

    public void setP1(Produto p1) {
        this.p1 = p1;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }
    
     public void test() {
        System.out.println("vlkjb");
        System.out.println("asa");
        System.out.println("asdacd");
        System.out.println("cx");
        System.out.println("xczcz");

    }
    
}
